The Fluid Dynamic governing equations for complex configurations are not generally amenable to analytical solutions. Instead, these and other similar problems are usually solved by dividing the simulation into a mesh of discrete domains, wherein the governing equations are solved inside each of these portions of the domain. Each of these portions of the domain are known as elements or cells, and the collection of all elements is known as mesh or grid.
To make solution of large meshes feasible, the meshes are partitioned to allow individual solutions to run in parallel on many processors in order to obtain a solution in a timely manner. To increase solution accuracy, the mesh undergoes adaptation, often referred to as Adaptive Mesh Refinement (AMR), by locally refining and coarsening the mesh to improve the resolution of the mesh around phenomena of interest without an excessive increase in computational effort. For example, highly refined meshes are required to accurately model flow physics and compute desired functions such as drag, lift, moments, and other flow phenomena including shock waves and vortices.
In order to run efficiently, however, the load on each processor must be the same. The adaptive solution causes the load to become un-balanced among parallel processors, and therefore decreases the efficiency of the parallel solution by orders of magnitude.
Solutions address this problem by repartitioning the mesh to balance the loads between processors. Solutions typically include an evaluation step to determine if the adaptive mesh is sufficiently unbalanced to warrant a repartitioning. Where repartitioning is justified, the adapted mesh typically is divided into new subgrids and reassigned to new processors in a manner that does not minimize the cost of data movement. Another evaluation step determines if the remapping cost is less than the computational gain that would be achieved through balanced partitions.
The remapping cost of these methods are very high because the repartitioning method is not truly dynamic. Current methods require operator input, the process is essentially starting over and repartitioning the mesh from scratch. The remapping costs of these methods typically include saving the solution and then repartitioning and retransmitting all the data again on restart. These constraints typically make it infeasible to reparation the mesh until the imbalance becomes quite large. Thus, the total efficiency is significantly reduced so systems and methods for adaptive mesh processing require a new method to maintain efficiency.